Page({
  data: {
    userInfo: {},         // 存储从接口获取的用户信息（含头像）
    notificationEnabled: true,
    language: 'zh-CN',
    cacheSize: '15.6MB',
    recipeList: []        // 菜谱列表数据（接口返回）
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 页面加载时调用接口加载数据（含用户信息和头像）
    this.loadUserData();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 页面重新显示时（如返回页面），重新加载数据刷新头像
    this.loadUserData();
  },

  /**
   * 核心方法：从菜谱接口加载用户信息（含头像）和菜谱数据
   */
  loadUserData() {
    // 1. 获取当前登录用户ID（用于接口请求）
    const app = getApp();
    const userId = app.globalData.userInfo?.id;

    // 2. 校验用户ID是否存在
    if (!userId) {
      wx.showToast({ title: '未获取到用户ID，请先登录', icon: 'none' });
      return;
    }

    // 3. 调用接口获取数据（用户信息+菜谱列表）
    wx.showLoading({ title: '加载中...', mask: true });
    wx.request({
      url: `http://localhost:8080/userr/users/withRecipes/${userId}`,
      method: 'GET',
      header: {
        'Authorization': `Bearer ${wx.getStorageSync('token')}`,
        'Content-Type': 'application/json'
      },
      success: (res) => {
        // 4. 接口请求成功，处理返回数据
        if (res.data && res.data.code === 200 && res.data.data) {
          const userData = res.data.data; // 接口返回的完整数据

          // 5. 格式化用户信息（重点处理头像路径）
          const formattedUser = {
            id: userData.id,
            name: userData.nickname || '用户',
            // 头像路径处理：从接口的avatarUrl字段获取，拼接完整路径
            avatar: userData.avatarUrl 
              ? (userData.avatarUrl.startsWith('http') 
                  ? userData.avatarUrl  // 若已为绝对路径，直接使用
                  : `https://gzq123.oss-cn-beijing.aliyuncs.com/${userData.avatarUrl}`)  // 相对路径拼接
              : '/images/116.png',  // 无头像时显示默认图
            gender: userData.sex === 1 ? '女' : '男',
            joinYear: userData.joinTime ? userData.joinTime.split('-')[0] : '',
            points: userData.totalPoint || 0,
            recipeCount: userData.recipesList?.length || 0,
            workCount: 0,
            isVip: userData.isVip === 1,
            vipExpireDate: userData.vipExpireTime 
              ? new Date(userData.vipExpireTime).toLocaleDateString('zh-CN') 
              : ''
          };

          // 打印头像路径日志（用于调试）
          console.log('菜谱接口返回的头像路径：', formattedUser.avatar);

          // 6. 格式化菜谱列表数据
          const recipeList = userData.recipesList?.map(recipe => ({
            id: recipe.id,
            title: recipe.title || '未命名菜谱',
            imageUrl: recipe.coverUrl 
              ? `https://gzq123.oss-cn-beijing.aliyuncs.com/${recipe.coverUrl}` 
              : '/images/default-recipe.png',
            isVideo: recipe.mediaType === 2,
            introduction: recipe.introduction || '',
            createTime: recipe.createTime || ''
          })) || [];

          // 7. 更新页面数据（用户信息+菜谱列表）
          this.setData({
            userInfo: formattedUser,  // 用户信息（含接口获取的头像）
            recipeList: recipeList
          });

        } else {
          // 接口返回数据异常
          wx.showToast({ 
            title: res.data?.msg || '用户数据获取失败', 
            icon: 'none' 
          });
          console.error('接口返回异常：', res.data);
        }
      },
      fail: (err) => {
        // 接口请求失败
        wx.showToast({ title: '网络错误，加载失败', icon: 'none' });
        console.error('菜谱接口请求失败：', err);
      },
      complete: () => {
        // 无论成功/失败，隐藏加载提示
        wx.hideLoading();
      }
    });
  },

  // 编辑资料
  onEditProfile() {
    wx.navigateTo({
      url: '/my/pages/edit-profile/edit-profile'
    });
  },

  // 修改密码
  onChangePassword() {
    wx.navigateTo({
      url: '/my/pages/change-password/change-password'
    });
  },

  // 隐私设置
  onPrivacySettings() {
    wx.navigateTo({
      url: '/my/pages/privacy-settings/privacy-settings'
    });
  },

  // 消息通知
  onNotificationSettings() {
    wx.navigateTo({
      url: '/my/pages/notification-settings/notification-settings'
    });
  },

  // 通知开关变化
  onNotificationChange(e) {
    this.setData({
      notificationEnabled: e.detail.value
    });
    wx.showToast({
      title: e.detail.value ? '已开启通知' : '已关闭通知',
      icon: 'success'
    });
  },

  // 语言设置
  onLanguageSettings() {
    wx.showActionSheet({
      itemList: ['简体中文', 'English'],
      success: (res) => {
        const languages = ['zh-CN', 'en-US'];
        const languageNames = ['简体中文', 'English'];
        this.setData({
          language: languages[res.tapIndex]
        });
        wx.showToast({
          title: `已切换为${languageNames[res.tapIndex]}`,
          icon: 'success'
        });
      }
    });
  },

  // 清除缓存
  onClearCache() {
    wx.showModal({
      title: '清除缓存',
      content: '确定要清除所有缓存数据吗？',
      success: (res) => {
        if (res.confirm) {
          wx.showLoading({ title: '清除中...' });
          setTimeout(() => {
            wx.hideLoading();
            this.setData({ cacheSize: '0MB' });
            wx.showToast({ title: '清除成功', icon: 'success' });
          }, 1500);
        }
      }
    });
  },

  // 关于我们
  onAbout() {
    wx.navigateTo({ url: '/my/pages/about/about' });
  },

  // 帮助与反馈
  onHelp() {
    wx.navigateTo({ url: '/my/pages/help/help' });
  },

  // 隐私政策
  onPrivacyPolicy() {
    wx.navigateTo({ url: '/my/pages/privacy-policy/privacy-policy' });
  },

  // 用户协议
  onUserAgreement() {
    wx.navigateTo({ url: '/my/pages/user-agreement/user-agreement' });
  },

  // 退出登录
  onLogout() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          const app = getApp();
          app.clearLoginStatus();
          wx.showToast({ title: '已退出登录', icon: 'success' });
          setTimeout(() => {
            wx.reLaunch({ url: '/pages/login/login' });
          }, 1000);
        }
      }
    });
  }
});